﻿using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace Inspired.Euler.Tests
{
    /// <summary>
    /// Tests for problems from 110 to 119
    /// </summary>
    [TestClass]
    public class Problems110To119
    {
        [TestMethod]
        [Description("Find an efficient algorithm to analyse the number of solutions of the equation 1/<var>x</var> + 1/<var>y</var> = 1/<var>n</var>.")]
        public void Problem110()
        {
            Assert.AreEqual(-1, Euler.Problem110.Solve());
        }

        [TestMethod]
        [Description("Search for 10-digit primes containing the maximum number of repeated digits.")]
        public void Problem111()
        {
            Assert.AreEqual(-1, Euler.Problem111.Solve());
        }

        [TestMethod]
        [Description("Investigating the density of 'bouncy' numbers.")]
        public void Problem112()
        {
            Assert.AreEqual(1587000, Euler.Problem112.Solve());
        }

        [TestMethod]
        [Description("How many numbers below a googol (10<sup>100</sup>) are not &quot;bouncy&quot;?")]
        public void Problem113()
        {
            Assert.AreEqual(-1, Euler.Problem113.Solve());
        }

        [TestMethod]
        [Description("Investigating the number of ways to fill a row with separated blocks that are at least three units long.")]
        public void Problem114()
        {
            Assert.AreEqual(-1, Euler.Problem114.Solve());
        }

        [TestMethod]
        [Description("Finding a generalisation for the number of ways to fill a row with separated blocks.")]
        public void Problem115()
        {
            Assert.AreEqual(-1, Euler.Problem115.Solve());
        }

        [TestMethod]
        [Description("Investigating the number of ways of replacing square tiles with one of three coloured tiles.")]
        public void Problem116()
        {
            Assert.AreEqual(-1, Euler.Problem116.Solve());
        }

        [TestMethod]
        [Description("Investigating the number of ways of tiling a row using different-sized tiles.")]
        public void Problem117()
        {
            Assert.AreEqual(-1, Euler.Problem117.Solve());
        }

        [TestMethod]
        [Description("Exploring the number of ways in which sets containing prime elements can be made.")]
        public void Problem118()
        {
            Assert.AreEqual(-1, Euler.Problem118.Solve());
        }

        [TestMethod]
        [Description("Investigating the numbers which are equal to sum of their digits raised to some power.")]
        public void Problem119()
        {
            Assert.AreEqual(-1, Euler.Problem119.Solve());
        }
    }
}
